/*
 * Filename:    HcpmsWarnService.java
 * Copyright:   2014 中国平安保险（集团）股份有限公司 版权所有
 * Company:     平安科技养老险及健康险系统开发部
 * Create at:   2014年11月5日
 */
package com.paic.mhis.hcpms.warning.biz.service;

import java.util.List;
import java.util.Map;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.paic.mhis.hcpms.warning.dto.HcpmsWarnProcessInfoDTO;
import com.paic.mhis.hcpms.warning.dto.HcpmsWarningDTO;
import com.paic.mhis.hcpms.warning.dto.HcpmsWarnsDTO;
import com.paic.mhis.hcpms.warning.dto.WarningCheckDetailDTO;
import com.paic.mhis.hcpms.warning.dto.WarningResultAuditDTO;

public interface HcpmsWarnService {
	/**
	 * 数据字典查询
	 * 
	 * @param map
	 * @return
	 */
	Map<String, Object> getCodeList(Map<String, Object> map);

	/**
	 * 预警反馈明细查询
	 * 
	 * @param map
	 * @return
	 */
	List<WarningCheckDetailDTO> getFeedBackDetailList(Map<String, Object> map);

	/**
	 * 预警反馈查询
	 * 
	 * @param map
	 * @return
	 */
	Map<String, Object> getFeedBackList(Map<String, Object> map);

	/**
	 * 查询预警事件
	 * 
	 * @param map
	 * @return
	 */
	Map<String, Object> queryWarnData(Map<String, Object> map);

	/**
	 * 更新预警任务信息
	 * 
	 * @param warning
	 */
	public void updateHcpmsWarn(HcpmsWarningDTO warning);

	/**
	 * 保存结论审核
	 * 
	 * @param param
	 * @return
	 */
	Map<String, Object> saveWarnResultAudit(WarningResultAuditDTO param);

	/**
	 * 查询预警事件
	 * 
	 * @param warnNo
	 * @return
	 */
	HcpmsWarnsDTO getWarnInfo(String warnNo);

	/**** 预警事件中信息编辑对医疗机构、医护人员、参保人员查询 ***/
	/**
	 * 查询医疗机构
	 * 
	 * @param map
	 * @return
	 */
	Map<String, Object> getMedicalList(Map<String, Object> map);

	/**
	 * 查询医护人员
	 * 
	 * @param map
	 * @return
	 */
	Map<String, Object> getStaffList(Map<String, Object> map);

	/**
	 * 查询参保人员
	 * 
	 * @param map
	 * @return
	 */
	Map<String, Object> getInsuranceList(Map<String, Object> map);

	/**
	 * 预警事件转稽核
	 * 
	 * @param warnNo
	 */
	void warningChangeAudit(String warnNo);

	Map<String, Object> editHcpmsWarn(JSONObject json, String userId, String warnNo);

	Map<String, Object> editHcpmsWarnTarget(JSONObject jsonObject, String userId, String warnNo, String type);

	Map<String, Object> editHcpmsWarnScreen(JSONArray jsonObject, String userId, String warnNo);

	Map<String, Object> editHcpmsWarnTarget(JSONArray jsonObject, String userId, String warnNo, String type);

	Map<String, Object> editHcpmsWarnNotice(JSONObject jsonArray, String userId, String warnNo, String taskType,
			String docTyp);

	Map<String, Object> editAssessResultList(JSONArray jsonArray, String username, String warnNo);

	Map<String, Object> editAssessResult(JSONObject jsonObject, String username, String warnNo);

	Map<String, Object> editWarnResultAudit(JSONObject jsonObject, String username, String warnNo);

	Map<String, Object> getWarnResult(Map<String, Object> map);

	Map<String, Object> getAuditResult(Map<String, Object> map);

	Map<String, Object> getWarnNotice(String warnNo, String taskType, String docType, String userId);

	Map<String, Object> getBaseFormParam(List<String> codeType);

	Map<String, Object> editStorageSave(JSONObject transferJson, String warnNo, String username);

	/**
	 * 预警通知单号
	 * 
	 * @param map
	 * @return
	 */
	public String createWarnNoticeNum(Map<String, Object> map);

	void deleteStorageDateAll(String warnNo, String userId);

	void deleteUpNodeDate(String warnNo, String businessType);

	/**
	 * 批量审核预警事件
	 * 
	 * @param json
	 * @param userName
	 * @return
	 */
	public Map<String, Object> auditWarnBatch(JSONObject json, String userName);


	/**
	 * 流程信息查看
	 * @param map
	 * @return
	 */
	List<HcpmsWarnProcessInfoDTO> getAllWorkFlowInfo(Map<String, Object> map);
	
	/**
	 * 流程状态信息
	 * @param map
	 * @return
	 */
	String queryProcessStatusInfo(Map<String, Object> map);

}